Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO
■BRANCH4670 BIOS
o BRANCH4670は、NECの総合ローカルエリアネットワークシステムである
C&C-NETのBRANCH系サブシステムの製品である。
o PC-9864初代(ネットワークインターフェースセット)はBRANCH4670対応、
PC-9864L・U(B4670IIインターフェースセット)はBRANCH4670II対応の
ネットワークインターフェースボード。
o BRANCH4670 BIOSは、以下の環境でサポートされる。
■ノーマルモード
- PC-9864初代 + PC-9864-02(BRANCH BIOS ROM)
- PC-9864L・U(BIOS ROMは標準実装)
* インターフェースボード上のROM内BRANCH BIOSを使用する
■ハイレゾモード
- PC-9864初代
* 本体BIOS ROM内のBRANCH BIOSを使用する。ただし、PC-H98と98ハイレゾ
ボード(PC-9821A-E02)はBRANCH BIOSをサポートしていない
- PC-9864L・U
* インターフェースボード上のROM内BRANCH BIOSを使用する
関連 ■ハイレゾ
F800:7FE0h
0000:0400h bit 0
■ハイレゾ,ノーマル
0000:0480h bit 5
0000:049A〜04ABh
0000:05E5〜05E7h
INT 1Bh - Function 05h(BRANCH)
INT 1Bh - Function 06h(BRANCH)
INT D3h - Function 00h
分類 BRANCH4670 BIOS
名前 SEND MESSAGE
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=00h
AH=コントロールデータ長(常に0として処理される)
BX=ローカルRAMデータ領域の先頭アドレス
CX=送信データ長
DH=送信先ソケット番号(80h,90h,A0h,B0h)
DL=送信先ステーション番号
DI=リザルトレコードの先頭アドレス(DI+AH+3≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00h メッセージが正しく伝えられた(再送信なし)
01〜7Fh メッセージが正しく伝えられた(1〜127回再送信した)
80h メッセージが正しく伝えられなかった(リトライ回数オーバ)
81h メッセージデータ部が受信側バッファより長かった
82h メッセージが準備されていないソケットに送信された
83h メッセージコントロール部の長さが、受信側の長さと異なる
84h 指定できないソケット番号が指定された
86h 指定できないステーション番号が指定された
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
-------+-----------------------------------------------------------
解説 o 指定されたステーションのソケットにメッセージを送信する。
o 上位プログラムが設定したローカルRAM内のデータを、指定された
ステーションのソケットに送信する。
o 送信結果を上位プログラムに通知する。
関連
INT D3h - Function 01h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=01h
■PC-9864L・U + ノーマル + 0000:043Bh bit 4=0のとき
INT D3h - Function 00hと同じ
■PC-9864L・U + ノーマル + 0000:043Bh bit 4=1 または ¥
PC-9864初代・L・U + ハイレゾのとき
AH=コントロールデータ長
BX=ローカルRAMデータ領域の先頭アドレス
CX=送信データ長
DH=送信先ソケット番号(80h,90h,A0h,B0h)
DL=送信先ステーション番号
SI=リザルトレコードの先頭アドレス+1
出力 INT D3h - Function 00hと同じ
解説 o INT D3h - Function 00hと同じ
関連
INT D3h - Function 02h
分類 BRANCH4670 BIOS
名前 SETUP RECEIVE
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=02h
AH=コントロールデータ長
BX=ローカルRAMデータ領域の先頭アドレス
CX=受信データ長
DH=送信先ソケット番号(80h,90h,A0h,B0h)
DI=リザルトレコードの先頭アドレス(DI+AH+3≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
84h 指定できないソケット番号が指定された
85h 指定されたソケットは既に使用されている
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
FEh 指定されたソケットが準備された
-------+-----------------------------------------------------------
解説 o 上位プログラムが設定したローカルRAM内にデータを受信するため、指定
ソケットを準備する。
o 指定ソケットのソケット情報域に、リザルトレコードアドレスを設定する。
o 準備されたソケットが正しくデータを受信すると、リザルトレコードの
先頭バイト(リターンコード)には、トランスポータによって00hが
書き込まれる。
o 一度データを受信したソケットは、再びこのファンクションで準備を
行わなければ次のデータを受信できない。
関連
INT D3h - Function 03h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=03h
AH=コントロールデータ長
BX=ローカルRAMデータ領域の先頭アドレス
CX=受信データ長
DH=送信先ソケット番号(80h,90h,A0h,B0h)
■PC-9864L・U + ノーマル
DI=リザルトレコードの先頭アドレス
■PC-9864初代・L・U + ハイレゾ
SI=リザルトレコードの先頭アドレス+1
出力 INT D3h - Function 02hと同じ
解説 o ノーマルモードでは、0000:043Bh bit 5=0のとき、INT D3h - Function 02hと
全く同じ処理を行う。0000:043Bh bit 5=1のときは、INT D3h - Function 02h
の一部の処理をスキップして実行する。詳細不明。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 02hと同じ処理を行う。
関連
INT D3h - Function 04h
分類 BRANCH4670 BIOS
名前 END RECEIVE
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=04h
DH=送信先ソケット番号(80h,90h,A0h,B0h)
DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00h 指定されたソケットが開放された
84h 指定できないソケット番号が指定された
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
-------+-----------------------------------------------------------
解説 o 指定されたソケットを開放する。
o 開放されたソケットは、再度SETUP RECEIVEファンクションを実行するまで
データ受信ができない。
関連
INT D3h - Function 05h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=05h
DH=送信先ソケット番号(80h,90h,A0h,B0h)
■PC-9864L・U + ノーマルのとき
DI=リザルトレコードの先頭アドレス
■PC-9864初代・L・U + ハイレゾのとき
SI=リザルトレコードの先頭アドレス+1
出力 INT D3h - Function 04hと同じ
解説 o ノーマルモードでは、INT D3h - Function 04hと全く同じ処理を行う。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 04hと同じ処理を行う。
関連
INT D3h - Function 06h
分類 BRANCH4670 BIOS
名前 INITIALIZE
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=06h
DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00〜3Fh 自局のステーション番号
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
89h BRANCH4670 I/Fボードがない
-------+-----------------------------------------------------------
解説 o BNAの初期化とBRANCH4670 BIOSワークエリアの初期設定をする。
o 以下の処理を行う。
- I/O 008Fhからステータスを引き取り、割り込み番号を調べて割り込み
ベクタを設定する。
- ローカルRAMを初期化する。
- BNAを初期化する。
- BRANCH4670 BIOSワークエリアを初期化する。
- 割り込みコントローラのマスクを解除する。
- 自局のステーション番号を返す。
関連
INT D3h - Function 07h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=07h
■PC-9864L・U + ノーマルのとき
DI=リザルトレコードの先頭アドレス
■PC-9864初代・L・U + ハイレゾのとき
SI=リザルトレコードの先頭アドレス+1
出力 INT D3h - Function 06hと同じ
解説 o ノーマルモードでは、0000:043Bh bit 3=0のとき、INT D3h - Function 06hと
全く同じ処理を行う。0000:043Bh bit 3=1のときは、INT D3h - Function 06h
の一部の処理をスキップして実行する。詳細不明。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 06hと同じ処理を行う。
関連
INT D3h - Function 08h
分類 BRANCH4670 BIOS
名前 WHO AM I
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=08h
DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00〜3Fh 自局のステーション番号
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
-------+-----------------------------------------------------------
解説 o 自局のステーション番号を通知する。ステーション番号は、PC-9864
(ネットワークインターフェースボード)のDIP SWで設定する。
関連
INT D3h - Function 09h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=09h
AH=不明
DH=不明
■PC-9864L・U + ノーマルのとき
DI=リザルトレコードの先頭アドレス
■PC-9864初代・L・U + ハイレゾのとき
SI=リザルトレコードの先頭アドレス+1
出力 INT D3h - Function 08hと同じ
解説 o ノーマルモードでは、AH=00h,DH=07hでこのファンクションを実行すると、
INT D3h - Function 08hと全く同じ処理を行う。それ以外の場合、詳細不明。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 08hと同じ処理を行う。
関連
INT D3h - Function 0Ah
分類 BRANCH4670 BIOS
名前 ECHO
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Ah
DL=相手側ステーション番号
DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
80h 相手側ステーションから応答が返ってこなかった
86h 指定できないステーション番号が指定された
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
C0h 相手側ステーションが正しく応答を返した
-------+-----------------------------------------------------------
解説 o 相手側のBNAが正しく接続されていて、動作可能かどうかを調べる。
関連
INT D3h - Function 0Bh
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Bh
AH=不明
DL=相手側ステーション番号
■PC-9864L・U + ノーマルのとき
DI=リザルトレコードの先頭アドレス
■PC-9864初代・L・U + ハイレゾのとき
SI=リザルトレコードの先頭アドレス+1
出力 AL=リターンコード
解説 o AH=00h,FFh以外のとき、INT D3h - Function 0Ahと全く同じ処理を行う。
AH=00hまたはFFhのときは詳細不明。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 0Ahと同じ処理を行う。
関連
INT D3h - Function 0Ch
分類 BRANCH4670 BIOS
名前 PEEK/POKE
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Ch
AH=PEEK/POKE指定
00h: PEEK指定
FFh: POKE指定
BX=ピコプロセッサアドレス
DL=POKEデータ(POKE指定時)
DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00h 正常終了(POKE指定時)
87h コマンドが実行できなかった(ハードウェアエラー)
88h タイムアウトになった
nnh ピコプロセッサの指定アドレスの内容(PEEK指定時)
-------+-----------------------------------------------------------
解説 o 自局のBNAの内部メモリ内容を取得(PEEK)、変更(POKE)する。
表 BNAの内部メモリの内容
-------+-----------------------------------------------------------
オフセット 内容
-------+-----------------------------------------------------------
00E1h メッセージ送信失敗時の最大リトライ回数(初期値=0Ah)
00E2h 各パケットの最後に送られるトレーリングフラグの数¥
(初期値=0Ah。ユーザ変更禁止)
00E3h 遅延カウンタ用の係数(ユーザ変更禁止)
00E4h ACKパケットのリーディングフラグの数
00E5h 喪失パケットカウンタ(ユーザ変更禁止)
00E6h 衝突回避用中断カウンタ(ユーザ変更禁止)
00E7h 前回エラー発生時のADLC受信ステータス(ユーザ変更禁止)
00E8h 割り込みエラーカウンタ(ユーザ変更禁止)
00E9h 転送アンダーランカウンタ(ユーザ変更禁止)
00EAh 6854レジスタ値(ユーザ変更禁止)
-------+-----------------------------------------------------------
関連
INT D3h - Function 0Dh
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Dh
■PC-9864L・U + ノーマル + 0000:043Bh bit 6=0のとき
AH=PEEK/POKE指定
00h: PEEK指定
FFh: POKE指定
BX=ピコプロセッサアドレス
DL=POKEデータ(POKE指定時)
DI=リザルトレコードの先頭アドレス
■PC-9864L・U + ノーマル + 0000:043Bh bit 6=1のとき
不明
■PC-9864初代・L・U + ハイレゾのとき
SI=リザルトレコードの先頭アドレス+1
出力 AL=リターンコード
解説 o ノーマルモードでは、0000:043Bh bit 6=0のとき、INT D3h - Function 0Chと
全く同じ処理を行う。0000:043Bh bit 6=1のときは、独自の処理を行う。詳細
不明。
o ハイレゾモードでは、使用するレジスタが一部異なる以外、
INT D3h - Function 0Chと同じ処理を行う。
INT D3h - Function 0Eh
分類 BRANCH4670 BIOS
名前 PUT DATA
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Eh
BX=転送先のローカルRAMの先頭アドレス
CX=転送データ長(BX+CX≦0FFFh)
DS:SI=転送先の本体RAMアドレス
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00h 正常終了
-------+-----------------------------------------------------------
解説 o 本体RAMのデータをローカルRAMに転送する。
関連
INT D3h - Function 0Fh
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=0Fh
BX=転送先のローカルRAMの先頭アドレス
CX=転送データ長(BX+CX≦0FFFh)
DS:SI=転送先の本体RAMアドレス
出力 INT D3h - Function 0Ehと同じ
解説 o INT D3h - Function 0Ehと全く同じ処理を行う。
関連
INT D3h - Function 10h
分類 BRANCH4670 BIOS
名前 GET DATA
対象 PC-9864初代・L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=10h
BX=転送先のローカルRAMの先頭アドレス
CX=転送データ長(BX+CX≦0FFFh)
DS:SI=転送先の本体RAMアドレス
出力 AL=リターンコード
-------+-----------------------------------------------------------
値 内容
-------+-----------------------------------------------------------
00h 正常終了
-------+-----------------------------------------------------------
解説 o ローカルRAMのデータを本体RAMに転送する。
関連
INT D3h - Function 11h
分類 BRANCH4670 BIOS
名前 不明
Undocumented
対象 PC-9864L・U + ノーマル
PC-9864初代・L・U + ハイレゾ
入力 AL=11h
BX=転送先のローカルRAMの先頭アドレス
CX=転送データ長(BX+CX≦0FFFh)
DS:SI=転送先の本体RAMアドレス
出力 INT D3h - Function 10hと同じ
解説 o INT D3h - Function 10hと全く同じ処理を行う。
関連